//
// Created by pengtg on 2020/2/23.
//

#include "IObserver.h"

//主体函数 添加观察者
void IObserver::AddObs(IObserver *obs)
{
    if(!obs)return;
    mux.lock();
    obss.push_back(obs);
    mux.unlock();

}

//通知所有观察者
//暂时不考虑返回值，如果想知道通知被所有的观察者都收到了。就要考虑返回值
void IObserver::Notify(XData data)
{
    mux.lock();
    for(int i = 0; i < obss.size(); i++)
    {
        obss[i]->Update(data);
    }
    mux.unlock();

}